This invention concerns system-on-chip (SoC) designs. A SoC includes all or substantially all of the electronics of a useful consumer product in a single integrated circuit. Advances in microelectronics enable integration of all electronic components of a system on a single integrated circuit or chip. A SoC generally includes a variety of circuit types such as: a microprocessor based central processing unit (CPU) including a direct memory access (DMA) unit for control of data movement without direct CPU intervention; various peripheral interfaces such as for input devices and output devices; and co-processors designed for specific data processing tasks that cannot be handled by the CPU. The SoC may include memory such as cache memory for the CPU, data buffers within various circuits and non-volatile memory such as read only memory (ROM) or erasable programmable read only memory (EPROM) for program storage for product definition. A SoC may also include larger system memory such as dynamic random access memory (DRAM) or rely upon an external commodity memory integrated circuit.
Due to the variety of circuits required, current SoC designs are often assembled from circuit modules produced by different design teams. Often design of circuit modules is a specialized task and so expertise in one design of one circuit module does not transfer to another circuit module. Even if all the circuit modules are designed by the same design team, often efficiency concerns require that a previously designed circuit module be used as a whole in a new SoC rather than producing a new module design. The task of the SoC design team is primarily in integrating existing circuit modules into the whole. This process is similar to the task of assembling a multi-integrated system from multiple integrated circuits with some important differences.
This design dynamic has given rise to independent module design companies. These companies sole output is called intellectual property (IP) which are circuit module designs. A semiconductor manufacturer purchases this IP for integration into its SoC products. This IP often involves peripherals that cater to a particular application domain such as audio, video, PCI, I2C, etc. These peripherals interact both with the external world and the DMA system to transfer data between them without intervention from the CPU. These IP modules are often delivered to the SoC manufacturer as completed layout designs without the SoC manufacturer having any capability of altering the IP module.
SoC designs are attractive for portable, battery powered systems. It is well known that SoC designs often consume less power than multi-chip designs. This is primarily due to reduction in the need for high-power data drivers between plural integrated circuits. Reduction of power consumption contributes to longer battery life or smaller size due to reduced battery size. With increasing demand for low power applications, run-time power-up/power-down features are required of these IP modules to save power. This would enable an IP module to be powered down when not used and powered up again when used. This should be implemented on a global basis without assuming any power-up/power-down support from the IP module. Many existing IP modules do not include support for selective powering. The SoC designers may not have access to the IP module circuits to add support. In addition, even if the SoC designers could add support for this feature into a module, this may not be an efficient allocation of design resources. Uniformity across the whole SoC requires a global solution.
Implementing such a dynamic power-up/power-down of a module also poses several challenges in a shared and distributed DMA system. On-going transactions might stall because the powered-down module cannot respond. This may reduce the total available DMA bandwidth for remaining active modules. In the worst scenario, it could lead to an entire system hang.